package Learn;

public class Sort181 {
    //快速排序
    //以0为基准数
    //比基准数小的在左边 比基准数大的在右边
    public static void main(String[] args) {
        int []arr={6,1,2,7,9,3,4,5,10,8};

        QuickSort(arr,0,arr.length-1);

        sortPrint(arr);
    }
    public static void QuickSort(int []arr,int i,int j){
        int start=i;
        int end=j;

        if(start>end){
            return;
        }
        int baseNum=arr[i];

        while(end!=start){
            while(true){
                if(end<=start||arr[end]<baseNum){
                    break;
                }
                end--;
            }
            while(true){
                if(end<=start||arr[start]>baseNum){
                    break;
                }
                start++;
            }

            int tmp=arr[start];
            arr[start]=arr[end];
            arr[end]=tmp;
        }
        int tmp=arr[i];
        arr[i]=arr[start];
        arr[start]=tmp;

        QuickSort(arr,i,start-1);

        QuickSort(arr,start+1,j);

    }


    private static void sortPrint(int[] arr1) {
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }
    }





//            while(start!=end){
//        if(arr[end]<baseNum){
//            if(arr[start]>baseNum){
//                int tmp=arr[start];
//                arr[start]=arr[end];
//                arr[end]=tmp;
//            }
//            else{
//                start++;
//            }
//        }
//        else{
//            end--;
//        }
//
//    }
}
